<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        // 闭包应用-计算打车价格 
        // 打车起步价13(3公里内),  之后每多一公里增加 5块钱.  用户输入公里数就可以计算打车价格
        // 如果有拥堵情况,总价格多收取10块钱拥堵费
        // function fn() {};
        // fn();

        // 用户输入公里数， 即函数传递参数， 打印
        // 输入公里数，判断。。如果小于等于3，即总价格为起步价13；
        // else 公里数大于3，则总价格为起步价加 总公里数-3 乘5
        // var stopLi = 3;
        // var stopPrice = 13;
        // var totalPricr = 0;
        // // 正常
        // function price(p) {
        //     if (p <= stopLi) {
        //         totalPricr = stopPrice;
        //     } else {
        //         totalPricr = stopPrice + (p - stopLi) * 5;
        //     }
        //     return totalPricr;
        // };
        // // 堵 加10， 
        // function wall(falg) {
        //     return falg ? totalPricr + 10 : totalPricr;
        // };
        // console.log(price(100));
        // console.log(wall(false));

        // 小闭包操作
        // 用变量接受，即变量返回一个对象
        var car = (function() {
            var stopLi = 3;
            var stopPrice = 13;
            var totalPricr = 0;
            // 正常
            return {
                price: function(p) {
                    if (p <= stopLi) {
                        totalPricr = stopPrice;
                    } else {
                        totalPricr = stopPrice + (p - stopLi) * 5;
                    }
                    return totalPricr;
                },
                // 堵 加10， 
                wall: function(falg) {
                    return falg ? totalPricr + 10 : totalPricr;
                },
            }
        })();
        // 立即执行返回一个对象，对象中包括总价格，另外堵车价格

        console.log(car.price(100));
        console.log(car.wall(true));
    </script>
</body>

</html>